import { createSSRApp } from 'vue'
import App from './App.vue'
/* 安装引入unocss */
import 'uno.css'
/* 安装引入vant */
import Vant from 'vant'
import 'vant/lib/index.css'
/* 安装引入pinia 数据持久化插件 */
import { createPinia } from 'pinia'
const pinia = createPinia()
/* 安装引入VConsole 移动端调试插件 */
import VConsole from 'vconsole'
if (import.meta.env.MODE != 'production') {
    // new VConsole();
}
/* 引入自定义函数功能插件 */
import './static/css/app.less'
import { success, msgTo, validToken } from './utils/util'
uni.$success = success
uni.$msgTo = msgTo
uni.$validToken = validToken

uni.$auditStatus = {
    1: '<text red>审核中</text>',
    2: '<text style="color: green;">审核通过</text>',
    '-1': '<text style="color: red;">审核不通过</text>',
}

uni.$isWx = () => {
    let ua = navigator.userAgent.toLowerCase()
    if (ua.match(/MicroMessenger/i) == 'micromessenger') {
        return true
    } else {
        return false
    }
}

uni.$validOpenid = () => {
    return new Promise((resolve, reject) => {
        if (uni.getStorageSync('openid')) {
            resolve()
        } else {
            alert('请先到个人中心获取用户信息')
            // uni.showToast({
            // 	title: '请先到个人中心获取用户信息',
            // 	icon: 'none'
            // })
            uni.switchTab({ url: '/pages/my/index' })
            reject()
        }
    })
}

// 拦截器 switchTab 切换后 滚动条重置
uni.addInterceptor('switchTab', {
    success() {
        uni.pageScrollTo({
            scrollTop: 0,
            duration: 0,
        })
    },
})

uni.addInterceptor('navigateBack', {
    invoke() {
        if (getCurrentPages().length < 2) {
            window.history.back()
            return false
        }
    },
})

export function createApp() {
    const app = createSSRApp(App)
    app.use(pinia)
    app.use(Vant)
    return {
        app,
    }
}
